/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniandes.patrones.entidades;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class AdministradorUsuarios {
    
    private List<Usuario> usuarios;
    
    private static AdministradorUsuarios instancia;
    
    private AdministradorUsuarios(){
        usuarios = new ArrayList<Usuario>();
        Cliente c = new Cliente("user", "user", Usuario.CLIENTE, "1020727795", "Alvaro", "Gomez", Cliente.TIPO_CEDULA, "1233", "310488", "Calle 123", "ppp@uniandes", new Date());
        Vehiculo v1 = new Vehiculo("ABC 123", "Mazda", "Negro", Vehiculo.EN_GARANTIA);
        Vehiculo v2 = new Vehiculo("DEF 456", "Renault", "Rojo", Vehiculo.SIN_GARANTIA);
        Vehiculo v3 = new Vehiculo("GHI 789", "Mitsubishi", "Azul", Vehiculo.EN_GARANTIA);
        ArrayList<Vehiculo> carros = new ArrayList<Vehiculo>();
        carros.add(v1);
        carros.add(v2);
        carros.add(v3);
        c.setVehiculos(carros);
        usuarios.add(c);

        Usuario t = new Usuario("taller", "taller", Usuario.TALLER, "213456-54");
        usuarios.add(t);

        Usuario v = new Usuario("admin", "admin", Usuario.VEHIALPES, "999");
        usuarios.add(v);
        //Llenar con usuarios
    }

    public static AdministradorUsuarios getInstancia() {
        if(instancia == null){
            instancia = new AdministradorUsuarios();
        }
        return instancia;
    }
    
    public Usuario buscarUsuario(String login){
        for(Usuario u: usuarios){
            if(u.getLogin().equals(login)){
                return  u;
            }
        }
        return null;
    }

    public void setUsuarios(List<Usuario> usuarios) {
        this.usuarios = usuarios;
    }

    public List<Usuario> getUsuarios() {
        return usuarios;
    }

    public boolean autenticarIngreso(String usuario,String password,String rol){
        return ingreso(usuario, password,rol);
        //return true;
    }

    private static boolean ingreso(java.lang.String usuario, java.lang.String passwd, java.lang.String rol) {
        vehialpes.ingreso.Ingreso_Service service = new vehialpes.ingreso.Ingreso_Service();
        vehialpes.ingreso.Ingreso port = service.getIngresoPort();
        return port.ingreso(usuario, passwd, rol);
    }






}
